public class Test {
    public static void main(String[] args) {
        //多态好处:
        //好处1：可以实现解耦合，右边对象可以随时切换，后续业务随机改变
        People p1 = new Teacher();
        p1.say();
        //p1.teach();  //多态的情况下调用不了子类的方法

        //进行强制转换前先使用(instanceof)检查类型
        System.out.println(p1 instanceof Student);

//        Student s3 = (Student) p1;

        //通过强转的方式实现使用子类方法S
        Teacher p2 = (Teacher) p1;
        p2.say();
        p2.teach();

        Student s1 = new Student();
        go(s1);

        Teacher t1 = new Teacher();
        go(t1);
    }
    //好处2：可是使用父类类型的变量作为形参，可以接受一切子类
    public static void go(People p){

    }
}
